System.register([], function (_export) {
'use strict';
var NameExpression, NameBinder;
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
return {
setters: [],
execute: function () {
NameExpression = (function () {
function NameExpression(name, mode) {
_classCallCheck(this, NameExpression);
this.property = name;
this.discrete = true;
this.mode = mode.replace(/-([a-z])/g, function (m, w) {
return w.toUpperCase();
});
}
NameExpression.prototype.createBinding = function createBinding(target) {
return new NameBinder(this.property, target, this.mode);
};
return NameExpression;
})();
_export('NameExpression', NameExpression);
NameBinder = (function () {
function NameBinder(property, target, mode) {
_classCallCheck(this, NameBinder);
this.property = property;
if (mode === 'element') {
this.target = target;
} else {
this.target = target[mode];
if (this.target === undefined) {
throw new Error('Attempted to reference "' + mode + '", but it was not found on the target element.');
} else {
this.target = this.target.executionContext || this.target;
}
}
}
NameBinder.prototype.bind = function bind(source) {
if (this.source) {
if (this.source === source) {
return;
}
this.unbind();
}
this.source = source;
source[this.property] = this.target;
};
NameBinder.prototype.unbind = function unbind() {
this.source[this.property] = null;
};
return NameBinder;
})();
}
};
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2JpbmRpbmcvc3JjL25hbWUtZXhwcmVzc2lvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7TUFBYSxjQUFjLEVBWXJCLFVBQVU7Ozs7Ozs7QUFaSCxvQkFBYztBQUNkLGlCQURBLGNBQWMsQ0FDYixJQUFJLEVBQUUsSUFBSSxFQUFDO2dDQURaLGNBQWM7O0FBRXZCLGNBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQ3JCLGNBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQ3JCLGNBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsVUFBQyxDQUFDLEVBQUUsQ0FBQzttQkFBSyxDQUFDLENBQUMsV0FBVyxFQUFFO1dBQUEsQ0FBQyxDQUFDO1NBQ2xFOztBQUxVLHNCQUFjLFdBT3pCLGFBQWEsR0FBQSx1QkFBQyxNQUFNLEVBQUM7QUFDbkIsaUJBQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pEOztlQVRVLGNBQWM7OztnQ0FBZCxjQUFjOztBQVlyQixnQkFBVTtBQUNILGlCQURQLFVBQVUsQ0FDRixRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQztnQ0FEL0IsVUFBVTs7QUFFWixjQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQzs7QUFFekIsY0FBRyxJQUFJLEtBQUssU0FBUyxFQUFDO0FBQ3BCLGdCQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztXQUN0QixNQUFNO0FBQ0wsZ0JBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDOztBQUUzQixnQkFBRyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBQztBQUMzQixvQkFBTSxJQUFJLEtBQUssOEJBQTRCLElBQUksb0RBQWlELENBQUE7YUFDakcsTUFBSTtBQUNILGtCQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQzthQUMzRDtXQUNGO1NBQ0Y7O0FBZkcsa0JBQVUsV0FpQmQsSUFBSSxHQUFBLGNBQUMsTUFBTSxFQUFDO0FBQ1YsY0FBRyxJQUFJLENBQUMsTUFBTSxFQUFDO0FBQ2IsZ0JBQUcsSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUM7QUFDeEIscUJBQU87YUFDUjs7QUFFRCxnQkFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1dBQ2Y7O0FBRUQsY0FBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDckIsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNyQzs7QUE1Qkcsa0JBQVUsV0E4QmQsTUFBTSxHQUFBLGtCQUFFO0FBQ04sY0FBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ25DOztlQWhDRyxVQUFVIiwiZmlsZSI6Ii9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2JpbmRpbmcvc3JjL25hbWUtZXhwcmVzc2lvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBOYW1lRXhwcmVzc2lvbiB7XG4gIGNvbnN0cnVjdG9yKG5hbWUsIG1vZGUpe1xuICAgIHRoaXMucHJvcGVydHkgPSBuYW1lO1xuICAgIHRoaXMuZGlzY3JldGUgPSB0cnVlO1xuICAgIHRoaXMubW9kZSA9IG1vZGUucmVwbGFjZSgvLShbYS16XSkvZywgKG0sIHcpID0+IHcudG9VcHBlckNhc2UoKSk7XG4gIH1cblxuICBjcmVhdGVCaW5kaW5nKHRhcmdldCl7XG4gICAgcmV0dXJuIG5ldyBOYW1lQmluZGVyKHRoaXMucHJvcGVydHksIHRhcmdldCwgdGhpcy5tb2RlKTtcbiAgfVxufVxuXG5jbGFzcyBOYW1lQmluZGVyIHtcbiAgY29uc3RydWN0b3IocHJvcGVydHksIHRhcmdldCwgbW9kZSl7XG4gICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5O1xuXG4gICAgaWYobW9kZSA9PT0gJ2VsZW1lbnQnKXtcbiAgICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhcmdldCA9IHRhcmdldFttb2RlXTtcblxuICAgICAgaWYodGhpcy50YXJnZXQgPT09IHVuZGVmaW5lZCl7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXR0ZW1wdGVkIHRvIHJlZmVyZW5jZSBcIiR7bW9kZX1cIiwgYnV0IGl0IHdhcyBub3QgZm91bmQgb24gdGhlIHRhcmdldCBlbGVtZW50LmApXG4gICAgICB9ZWxzZXtcbiAgICAgICAgdGhpcy50YXJnZXQgPSB0aGlzLnRhcmdldC5leGVjdXRpb25Db250ZXh0IHx8IHRoaXMudGFyZ2V0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGJpbmQoc291cmNlKXtcbiAgICBpZih0aGlzLnNvdXJjZSl7XG4gICAgICBpZih0aGlzLnNvdXJjZSA9PT0gc291cmNlKXtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnVuYmluZCgpO1xuICAgIH1cblxuICAgIHRoaXMuc291cmNlID0gc291cmNlO1xuICAgIHNvdXJjZVt0aGlzLnByb3BlcnR5XSA9IHRoaXMudGFyZ2V0O1xuICB9XG5cbiAgdW5iaW5kKCl7XG4gICAgdGhpcy5zb3VyY2VbdGhpcy5wcm9wZXJ0eV0gPSBudWxsO1xuICB9XG59XG4iXX0= |